<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>Document</title>
  </head>
  <body>
    <script>
      // 递归的概念：自己调用自己
      //   function fun() {
      //     console.log("我要吃饭了！");
      //     fun();
      //   }
      //   fun();

      /* 函数的递归要想设计好必须有两个条件

      - 必须有一个明显的结束条件，不能一直递归下去
      - 每一次调用都要有一个趋近结束条件的趋势 
      */

      //   计算 5的阶乘
      //   var num = 1;
      //   for (var i = 5; i > 1; i--) {
      //     num *= i;
      //   }
      //   console.log(num);

      //   function fun(n) {
      //     if (n == 1) {
      //       return 1;
      //     }
      //     return n * fun(n - 1);
      //   }
      //   console.log(fun(50));

      // 总结：
      //     1、回调函数
      //     2、作用域链
      //     3、闭包
      //     4、预解析
      //     5、IIFE
      //     6、获取函数参数
      //     7、递归
    </script>
  </body>
</html>
